/**
 * Data processor header file.
 */

#ifndef CORE_PROCESSOR_H
#define CORE_PROCESSOR_H

#include <string>
#include <vector>
#include <map>

namespace core {

class DataProcessor {
public:
    DataProcessor();
    ~DataProcessor();
    
    struct ProcessResult {
        size_t length;
        size_t lines;
        size_t words;
        bool analysis_complete;
    };
    
    ProcessResult process_file(const std::string& file_path);
    void save_result(const ProcessResult& result, const std::string& output_path);
    std::vector<ProcessResult> batch_process(const std::vector<std::string>& file_paths);
    
    std::map<std::string, int> get_statistics() const;

private:
    ProcessResult analyze_content(const std::string& content);
    
    size_t processed_count_;
    std::vector<std::string> errors_;
};

} // namespace core

#endif // CORE_PROCESSOR_H